#ifndef _camera_conf_H
#define _camera_conf_H

#include <opencv2/opencv.hpp>

class CameraConfig
{
    public:
        double fx, fy, cx, cy, scale;
        double k1, k2, p1, p2, k3;
        
        cv::Mat cameraMatrix, distCoeffs;
    
    public:
    CameraConfig(){}
    ~CameraConfig(){}

    void initCameraConfig()
    {   
        cameraMatrix = (cv::Mat_<float>(3, 3) <<
        fx, 0.0, cx,
        0.0, fy, cy,
        0.0, 0.0, 1.0);
        distCoeffs = (cv::Mat_<float>(5, 1) << k1, k2, p1, p2, k3);

        // std::vector<double> camera = {fx, 0, cx, 0, fy, cy, 0, 0, 1};
        // cameraMatrix = cv::Mat(camera);
        // cameraMatrix = cameraMatrix.reshape(1,3);
        // std::vector<double> dist = {k1, k2, p1, p2, k3};
        // distCoeffs = cv::Mat(dist);
        // distCoeffs = distCoeffs.reshape(1, 1);  
    }
};

#endif 

